home *** CD-ROM | disk | FTP | other *** search
-
-
-
- BC User Commands BC
-
-
-
- NNAAMMEE
- bc - arbitrary-precision arithmetic language and calculator
-
- SSYYNNOOPPSSIISS
- bbcc [ --cc ] [ --ll ] [ file ... ]
-
- DDEESSCCRRIIPPTTIIOONN
- _B_c is an interactive processor for a language which resem-
- bles C but provides unlimited precision arithmetic. It
- takes input from any files given, then reads the standard
- input. The --ll argument stands for the name of an arbitrary
- precision math library. The syntax for _b_c programs is as
- follows; L means letter a-z, E means expression, S means
- statement.
-
- Comments
- are enclosed in /* and */.
-
- Names
- simple variables: L
- array elements: L [ E ]
- The words `ibase', `obase', and `scale'
-
- Other operands
- arbitrarily long numbers with optional sign and
- decimal point.
- ( E )
- sqrt ( E )
- length ( E ) number of significant decimal digits
- scale ( E ) number of digits right of decimal point
- L ( E , ... , E )
-
- Operators
- + - * / % ^ (% is remainder; ^ is power)
- ++ -- (prefix and postfix; apply to names)
- == <= >= != < >
- = += -= *= /= %= ^=
-
- Statements
- E
- { S ; ... ; S }
- if ( E ) S
- while ( E ) S
- for ( E ; E ; E ) S
- null statement
- break
- quit
-
- Function definitions
- define L ( L ,..., L ) {
- auto L, ... , L
- S; ... S
-
-
-
- Sprite v1.0 July 28, 1987 1
-
-
-
-
-
-
- BC User Commands BC
-
-
-
- return ( E )
- }
-
- Functions in --ll math library
- s(x) sine
- c(x) cosine
- e(x) exponential
- l(x) log
- a(x) arctangent
- j(n,x) Bessel function
-
- All function arguments are passed by value.
-
- The value of a statement that is an expression is printed
- unless the main operator is an assignment. Either semi-
- colons or newlines may separate statements. Assignment to
- _s_c_a_l_e influences the number of digits to be retained on
- arithmetic operations in the manner of _d_c(1). Assignments
- to _i_b_a_s_e or _o_b_a_s_e set the input and output number radix
- respectively.
-
- The same letter may be used as an array, a function, and a
- simple variable simultaneously. All variables are global to
- the program. `Auto' variables are pushed down during func-
- tion calls. When using arrays as function arguments or
- defining them as automatic variables empty square brackets
- must follow the array name.
-
- For example
-
- scale = 20
- define e(x){
- auto a, b, c, i, s
- a = 1
- b = 1
- s = 1
- for(i=1; 1==1; i++){
- a = a*x
- b = b*i
- c = a/b
- if(c == 0) return(s)
- s = s+c
- }
- }
-
- defines a function to compute an approximate value of the
- exponential function and
-
- for(i=1; i<=10; i++) e(i)
-
- prints approximate values of the exponential function of the
- first ten integers.
-
-
-
- Sprite v1.0 July 28, 1987 2
-
-
-
-
-
-
- BC User Commands BC
-
-
-
- _B_c is actually a preprocessor for _d_c(1), which it invokes
- automatically, unless the --cc (compile only) option is
- present. In this case the _d_c input is sent to the standard
- output instead.
-
- FFIILLEESS
- /usr/lib/lib.b mathematical library
- dc(1) desk calculator proper
-
- SSEEEE AALLSSOO
- dc(1)
- L. L. Cherry and R. Morris, _B_C - _A_n _a_r_b_i_t_r_a_r_y _p_r_e_c_i_s_i_o_n
- _d_e_s_k-_c_a_l_c_u_l_a_t_o_r _l_a_n_g_u_a_g_e
-
- BBUUGGSS
- No &&, ||, or ! operators.
- _F_o_r statement must have all three E's.
- _Q_u_i_t is interpreted when read, not when executed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 July 28, 1987 3
-
-
-
-